These are the Zip and Unzip options to be used in the BW Zip Compress OCX
The sample application distributed with the OCX already have the most used commands inside it
Notice that not all the arguments can be used in the OCX , but you is welcome to test all
Zip and Unzip Options
These are the options to be passed to the Zip and Unzip functions using the Options argument , these arguments derived from the zip.exe and unzip.exe files by Infozip.
ZIP OPTIONS
-A Adjust self-extracting executable archive. A self-
extracting executable archive is created by
prepending the SFX stub to an existing archive. The
-A option tells zip to adjust the entry offsets
stored in the archive to take into account this
"preamble" data.
-b path
Use the specified path for the temporary archive. For example:
-b /tmp stuff *
will put the temporary zip archive in the directory
/tmp, copying over stuff.zip to the current direc-
tory when done. This option is only useful when
updating an existing archive, and the file system
containing this old archive does not have enough
space to hold both old and new archives at the same
time.
-c Add one-line comments for each file. File opera-
tions (adding, updating) are done first, and the
user is then prompted for a one-line comment for
each file. Enter the comment followed by return,
or just return for no comment.
-d Remove (delete) entries from a zip archive. For
example:
-d foo foo/tom/junk foo/harry/\* \*.o
will remove the entry foo/tom/junk, all of the
files that start with foo/harry/, and all of the
files that end with .o (in any path). Note that
shell pathname expansion has been inhibited with
backslashes, so that zip can see the asterisks,
enabling zip to match on the contents of the zip
archive instead of the contents of the current
directory.
Under MSDOS, -d is case sensitive when it matches
names in the zip archive. This requires that file
names be entered in upper case if they were zipped
by PKZIP on an MSDOS system.
-D Do not create entries in the zip archive for direc-
tories. Directory entries are created by default
so that their attributes can be saved in the zip
archive.
-e Encrypt the contents of the zip archive using a
password which is entered on the terminal in
response to a prompt (this will not be echoed; if
standard error is not a tty, zip will exit with an
error). The password prompt is repeated to save
the user from typing errors.
-f Replace (freshen) an existing entry in the zip
archive only if it has been modified more recently
than the version already in the zip archive; unlike
the update option (-u) this will not add files that
are not already in the zip archive. For example:
-f foo
This command should be run from the same directory
from which the original zip command was run, since
paths stored in zip archives are always relative.
Note that the timezone environment variable TZ
order for the -f , -u and -o options to work cor-
rectly.
The reasons behind this are somewhat subtle but
have to do with the differences between the Unix-
format file times (always in GMT) and most of the
other operating systems (always local time) and the
necessity to compare the two. A typical TZ value
is ``MET-1MEST'' (Middle European time with auto-
matic adjustment for ``summertime'' or Daylight
Savings Time).
-F Fix the zip archive. This option can be used if
some portions of the archive are missing. It is not
guaranteed to work, so you MUST make a backup of
the original archive first.
When doubled as in -FF the compressed sizes given
inside the damaged archive are not trusted and zip
scans for special signatures to identify the limits
between the archive members. The single -F is more
reliable if the archive is not too much damaged,
for example if it has only been truncated, so try
this option first.
Neither option will recover archives that have been
incorrectly transferred in ascii mode instead of
binary. After the repair, the -t option of unzip
may show that some files have a bad CRC. Such files
cannot be recovered; you can remove them from the
archive using the -d option of zip.
-g Grow (append to) the specified zip archive, instead
of creating a new one. If this operation fails, zip
attempts to restore the archive to its original
state. If the restoration fails, the archive might
become corrupted. This option is ignored when
there's no existing archive or when at least one
archive member must be updated or deleted.
-h Display the zip help information (this also appears
if zip is run with no arguments).
-i files
Include only the specified files, as in:
-r foo . -i \*.c
which will include only the files that end in .c in
the current directory and its subdirectories. (Note
for PKZIP users: the equivalent command is
pkzip -rP foo *.c
PKZIP does not allow recursion in directories other
than the current one.) The backslash avoids the
shell filename substitution, so that the name
matching is performed by zip at all directory lev-
els.
Also possible:
-r foo . -i@include.lst
which will only include the files in the current
directory and its subdirectories that match the
patterns in the file include.lst.
-I Don't scan through Image files. This option is
available on Acorn RISC OS only; when used, zip
will not consider Image files (eg. DOS partitions
or Spark archives when SparkFS is loaded) as direc-
tories but will store them as single files.
For example, if you have SparkFS loaded, zipping a
Spark archive will result in a zipfile containing a
directory (and its content) while using the 'I'
option will result in a zipfile containing a Spark
archive. Obviously this second case will also be
obtained (without the 'I' option) if SparkFS isn't
loaded.
-j Store just the name of a saved file (junk the
path), and do not store directory names. By
default, zip will store the full path (relative to
the current path).
-J Strip any prepended data (e.g. a SFX stub) from the
archive.
-k Attempt to convert the names and paths to conform
to MSDOS, store only the MSDOS attribute (just the
user write attribute from UNIX), and mark the entry
as made under MSDOS (even though it was not); for
compatibility with PKUNZIP under MSDOS which cannot
handle certain names such as those with two dots.
-l Translate the Unix end-of-line character LF into
the MSDOS convention CR LF. This option should not
be used on binary files. This option can be used
on Unix if the zip file is intended for PKUNZIP
under MSDOS. If the input files already contain CR
LF, this option adds an extra CR. This ensure that
unzip -a on Unix will get back an exact copy of the
original file, to undo the effect of zip -l.
-ll Translate the MSDOS end-of-line CR LF into Unix LF.
This option should not be used on binary files.
This option can be used on MSDOS if the zip file is
intended for unzip under Unix.
-L Display the zip license.
-m Move the specified files into the zip archive;
actually, this deletes the target directories/files
after making the specified zip archive. If a direc-
tory becomes empty after removal of the files, the
directory is also removed. No deletions are done
until zip has created the archive without error.
This is useful for conserving disk space, but is
potentially dangerous so it is recommended to use
it in combination with -T to test the archive
before removing all input files.
-n suffixes
Do not attempt to compress files named with the
given suffixes. Such files are simply stored (0%
compression) in the output zip file, so that zip
doesn't waste its time trying to compress them.
The suffixes are separated by either colons or
semicolons. For example:
-rn .Z:.zip:.tiff:.gif:.snd foo foo
will copy everything from foo into foo.zip, but
will store any files that end in .Z, .zip, .tiff,
.gif, or .snd without trying to compress them
(image and sound files often have their own spe-
cialized compression methods). By default, zip
does not compress files with extensions in the list
.Z:.zip:.zoo:.arc:.lzh:.arj. Such files are stored
directly in the output archive. The environment
variable ZIPOPT can be used to change the default
options. For example under Unix with csh:
setenv ZIPOPT "-n .gif:.zip"
To attempt compression on all files, use:
zip -n : foo
The maximum compression option -9 also attempts
compression on all files regardless of extension.
On Acorn RISC OS systems the suffixes are actually
filetypes (3 hex digit format). By default, zip
does not compress files with filetypes in the list
DDC:D96:68E (i.e. Archives, CFS files and PackDir
files).
-N Save Amiga filenotes as zipfile comments. They can
be restored by using the -N option of unzip. This
option is available on the Amiga only. If -c is
used also, you are prompted for comments only for
those files that do not have filenotes.
-o Set the "last modified" time of the zip archive to
the latest (oldest) "last modified" time found
among the entries in the zip archive. This can be
used without any other operations, if desired. For
example:
-o foo
will change the last modified time of foo.zip to
the latest time of the entries in foo.zip.
-q Quiet mode; eliminate informational messages and
comment prompts. (Useful, for example, in shell
scripts and background tasks).
-r Travel the directory structure recursively; for
example:
-r foo foo
In this case, all the files and directories in foo
are saved in a zip archive named foo.zip, including
files with names starting with ".", since the
recursion does not use the shell's file-name sub-
stitution mechanism. If you wish to include only a
specific subset of the files in directory foo and
its subdirectories, use the -i option to specify
the pattern of files to be included. You should
not use -r with the name ".*", since that matches
".." which will attempt to zip up the parent
directory (probably not what was intended).
-R Travel the directory structure recursively starting
at the current directory; for example:
-R foo *.c
In this case, all the files matching *.c in the
tree starting at the current directory are stored
into a zip archive named foo.zip. Note for PKZIP
users: the equivalent command is
pkzip -rP foo *.c
-S Include system and hidden files. This option is
effective on some systems only; it is ignored on
Unix.
-t mmddyyyy
Do not operate on files modified prior to the spec-
ified date, where mm is the month (0-12), dd is the
day of the month (1-31), and yyyy is the year. For
example:
-rt 12071991 infamy foo
will add all the files in foo and its subdirecto-
ries that were last modified on or after 7 December
1991, to the zip archive infamy.zip.
-tt mmddyyyy
Do not operate on files modified after or at the
specified date, where mm is the month (0-12), dd is
the day of the month (1-31), and yyyy is the year.
For example:
-rtt 11301995 infamy foo
will add all the files in foo and its subdirecto-
ries that were last modified before the 30 November
1995, to the zip archive infamy.zip.
-T Test the integrity of the new zip file. If the
check fails, the old zip file is unchanged and
(with the -m option) no input files are removed.
-u Replace (update) an existing entry in the zip
archive only if it has been modified more recently
than the version already in the zip archive. For
example:
zip -u stuff *
will add any new files in the current directory,
and update any files which have been modified since
the zip archive stuff.zip was last created/modified
(note that zip will not try to pack stuff.zip into
itself when you do this).
Note that the -u option with no arguments acts like
the -f (freshen) option.
-v Verbose mode or print diagnostic version info.
Normally, when applied to real operations, this
option enables the display of a progress indicator
during compression and requests verbose diagnostic
info about zipfile structure oddities.
When -v is the only command line argument, and std-
out is not redirected to a file, a diagnostic
screen is printed. In addition to the help screen
header with program name, version, and release
date, some pointers to the Info-ZIP home and dis-
tribution sites are given. Then, it shows informa-
tion about the target environment (compiler type
and version, OS version, compilation date and the
enabled optional features used to create the zip
executable.
-V Save VMS file attributes. This option is available
on VMS only; zip archives created with this option
will generally not be usable on other systems.
-w Append the version number of the files to the name,
including multiple versions of files. (VMS only;
default: use only the most recent version of a
specified file).
-x files
Explicitly exclude the specified files, as in:
-r foo foo -x \*.o
which will include the contents of foo in foo.zip
while excluding all the files that end in .o. The
backslash avoids the shell filename substitution,
so that the name matching is performed by zip at
all directory levels.
Also possible:
-r foo foo -x@exclude.lst
which will include the contents of foo in foo.zip
while excluding all the files that match the pat-
terns in the file exclude.lst.
-X Do not save extra file attributes (Extended
Attributes on OS/2, uid/gid and file times on
Unix).
-y Store symbolic links as such in the zip archive,
instead of compressing and storing the file
referred to by the link (UNIX only).
-z Prompt for a multi-line comment for the entire zip
archive. The comment is ended by a line containing
just a period, or an end of file condition (^D on
UNIX, ^Z on MSDOS, OS/2, and VAX/VMS). The comment
can be taken from a file:
-z foo < foowhat
-# Regulate the speed of compression using the speci-
fied digit #, where -0 indicates no compression
(store all files), -1 indicates the fastest com-
pression method (less compression) and -9 indicates
the slowest compression method (optimal compres-
sion, ignores the suffix list). The default com-
pression level is -6.
-@ Take the list of input files from standard input.
Only one filename per line.
-$ Include the volume label for the the drive holding
the first file to be compressed. If you want to
include only the volume label or to force a spe-
cific drive, use the drive name as first file name,
as in:
-$ foo a: c:bar
This option is effective on some systems only
(MSDOS and OS/2); it is ignored on Unix.
Unzip Options
OPTIONS
Note that, in order to support obsolescent hardware,
unzip's usage screen is limited to 22 or 23 lines and
should therefore be considered only a reminder of the
basic unzip syntax rather than an exhaustive list of all
possible flags. The exhaustive list follows:
-Z zipinfo(1L) mode. If the first option on the com-
mand line is -Z, the remaining options are taken to
be zipinfo(1L) options. See the appropriate manual
page for a description of these options.
-A [OS/2, Unix DLL] print extended help for the DLL's
programming interface (API).
-c extract files to stdout/screen (``CRT''). This
option is similar to the -p option except that the
name of each file is printed as it is extracted,
the -a option is allowed, and ASCII-EBCDIC conver-
sion is automatically performed if appropriate.
This option is not listed in the unzip usage
screen.
-f freshen existing files, i.e., extract only those
files that already exist on disk and that are newer
than the disk copies. By default unzip queries
before overwriting, but the -o option may be used
to suppress the queries. Note that under many
operating systems, the TZ (timezone) environment
variable must be set correctly in order for -f and
-u to work properly (under Unix the variable is
usually set automatically). The reasons for this
are somewhat subtle but have to do with the differ-
ences between DOS-format file times (always local
time) and Unix-format times (always in GMT/UTC) and
the necessity to compare the two. A typical TZ
value is ``PST8PDT'' (US Pacific time with auto-
matic adjustment for Daylight Savings Time or
``summer time'').
-l list archive files (short format). The names,
uncompressed file sizes and modification dates and
times of the specified files are printed, along
with totals for all files specified. If UnZip was
compiled with OS2_EAS defined, the -l option also
lists columns for the sizes of stored OS/2 extended
attributes (EAs) and OS/2 access control lists
(ACLs). In addition, the zipfile comment and indi-
vidual file comments (if any) are displayed. If a
file was archived from a single-case file system
(for example, the old MS-DOS FAT file system) and
the -L option was given, the filename is converted
to lowercase and is prefixed with a caret (^).
-p extract files to pipe (stdout). Nothing but the
file data is sent to stdout, and the files are
always extracted in binary format, just as they are
stored (no conversions).
-t test archive files. This option extracts each
specified file in memory and compares the CRC
(cyclic redundancy check, an enhanced checksum) of
the expanded file with the original file's stored
CRC value.
-T [most OSes] set the timestamp on the archive(s) to
that of the newest file in each one. This corre-
sponds to zip's -go option except that it can be
used on wildcard zipfiles (e.g., ``unzip -T
\*.zip'') and is much faster.
-u update existing files and create new ones if
needed. This option performs the same function as
the -f option, extracting (with query) files that
are newer than those with the same name on disk,
and in addition it extracts those files that do not
already exist on disk. See -f above for informa-
tion on setting the timezone properly.
-v be verbose or print diagnostic version info. This
option has evolved and now behaves as both an
option and a modifier. As an option it has two
purposes: when a zipfile is specified with no
other options, -v lists archive files verbosely,
adding to the basic -l info the compression method,
compressed size, compression ratio and 32-bit CRC.
When no zipfile is specified (that is, the complete
command is simply ``unzip -v''), a diagnostic
screen is printed. In addition to the normal
header with release date and version, unzip lists
the home Info-ZIP ftp site and where to find a list
of other ftp and non-ftp sites; the target operat-
ing system for which it was compiled, as well as
(possibly) the hardware on which it was compiled,
the compiler and version used, and the compilation
date; any special compilation options that might
affect the program's operation (see also DECRYPTION
below); and any options stored in environment vari-
ables that might do the same (see ENVIRONMENT
OPTIONS below). As a modifier it works in conjunc-
tion with other options (e.g., -t) to produce more
verbose or debugging output; this is not yet fully
implemented but will be in future releases.
-z display only the archive comment.
MODIFIERS
-a convert text files. Ordinarily all files are
extracted exactly as they are stored (as ``binary''
files). The -a option causes files identified by
zip as text files (those with the `t' label in zip-
info listings, rather than `b') to be automatically
extracted as such, converting line endings, end-of-
file characters and the character set itself as
necessary. (For example, Unix files use line feeds
(LFs) for end-of-line (EOL) and have no end-of-file
(EOF) marker; Macintoshes use carriage returns
(CRs) for EOLs; and most PC operating systems use
CR+LF for EOLs and control-Z for EOF. In addition,
IBM mainframes and the Michigan Terminal System use
EBCDIC rather than the more common ASCII character
set, and NT supports Unicode.) Note that zip's
identification of text files is by no means
perfect; some ``text'' files may actually be binary
and vice versa. unzip therefore prints ``[text]''
or ``[binary]'' as a visual check for each file it
extracts when using the -a option. The -aa option
forces all files to be extracted as text, regard-
less of the supposed file type.
-b [non-VMS] treat all files as binary (no text con-
versions). This is a shortcut for ---a.
-b [VMS] auto-convert binary files (see -a above) to
fixed-length, 512-byte record format. Doubling the
option (-bb) forces all files to be extracted in
this format.
-B [Unix only, and only if compiled with UNIXBACKUP
defined] save a backup copy of each overwritten
file with a tilde appended (e.g., the old copy of
``foo'' is renamed to ``foo~''). This is similar
to the default behavior of emacs(1) in many loca-
tions.
-C match filenames case-insensitively. unzip's phi-
losophy is ``you get what you ask for'' (this is
also responsible for the -L/-U change; see the rel-
evant options below). Because some file systems
are fully case-sensitive (notably those under the
Unix operating system) and because both ZIP
archives and unzip itself are portable across plat-
forms, unzip's default behavior is to match both
wildcard and literal filenames case-sensitively.
That is, specifying ``makefile'' on the command
line will only match ``makefile'' in the archive,
not ``Makefile'' or ``MAKEFILE'' (and similarly for
wildcard specifications). Since this does not cor-
respond to the behavior of many other operat-
ing/file systems (for example, OS/2 HPFS, which
preserves mixed case but is not sensitive to it),
the -C option may be used to force all filename
matches to be case-insensitive. In the example
above, all three files would then match ``make-
file'' (or ``make*'', or similar). The -C option
affects files in both the normal file list and the
excluded-file list (xlist).
-j junk paths. The archive's directory structure is
not recreated; all files are deposited in the
extraction directory (by default, the current one).
-L convert to lowercase any filename originating on an
uppercase-only operating system or file system.
(This was unzip's default behavior in releases
prior to 5.11; the new default behavior is identi-
cal to the old behavior with the -U option, which
is now obsolete and will be removed in a future
release.) Depending on the archiver, files
archived under single-case file systems (VMS, old
MS-DOS FAT, etc.) may be stored as all-uppercase
names; this can be ugly or inconvenient when
extracting to a case-preserving file system such as
OS/2 HPFS or a case-sensitive one such as under
Unix. By default unzip lists and extracts such
filenames exactly as they're stored (excepting
truncation, conversion of unsupported characters,
etc.); this option causes the names of all files
from certain systems to be converted to lowercase.
-M pipe all output through an internal pager similar
to the Unixmore(1) command. At the end of a
screenful of output, unzip pauses with a
``--More--'' prompt; the next screenful may be
viewed by pressing the Enter (Return) key or the
space bar. unzip can be terminated by pressing the
``q'' key and, on some systems, the Enter/Return
key. Unlike Unix more(1), there is no forward-
searching or editing capability. Also, unzip
doesn't notice if long lines wrap at the edge of
the screen, effectively resulting in the printing
of two or more lines and the likelihood that some
text will scroll off the top of the screen before
being viewed. On some systems the number of avail-
able lines on the screen is not detected, in which
case unzip assumes the height is 24 lines.
-n never overwrite existing files. If a file already
exists, skip the extraction of that file without
prompting. By default unzip queries before
extracting any file that already exists; the user
may choose to overwrite only the current file,
overwrite all files, skip extraction of the current
file, skip extraction of all existing files, or
rename the current file.
-N [Amiga] extract file comments as Amiga filenotes.
File comments are created with the -c option of
zip(1L), or with the -N option of the Amiga port of
zip(1L), which stores filenotes as comments.
-o overwrite existing files without prompting. This
is a dangerous option, so use it with care. (It is
often used with -f, however, and is the only way to
overwrite directory EAs under OS/2.)
-q perform operations quietly (-qq = even quieter).
Ordinarily unzip prints the names of the files it's
extracting or testing, the extraction methods, any
file or zipfile comments that may be stored in the
archive, and possibly a summary when finished with
each archive. The -q[q] options suppress the
printing of some or all of these messages.
-s [OS/2, NT, MS-DOS] convert spaces in filenames to
underscores. Since all PC operating systems allow
spaces in filenames, unzip by default extracts
filenames with spaces intact (e.g.,
``EA DATA. SF''). This can be awkward, however,
since MS-DOS in particular does not gracefully sup-
port spaces in filenames. Conversion of spaces to
underscores can eliminate the awkwardness in some
cases.
-U (obsolete; to be removed in a future release) leave
filenames uppercase if created under MS-DOS, VMS,
etc. See -L above.
-V retain (VMS) file version numbers. VMS files can
be stored with a version number, in the format
file.ext;##. By default the ``;##'' version num-
bers are stripped, but this option allows them to
be retained. (On file systems that limit filenames
to particularly short lengths, the version numbers
may be truncated or stripped regardless of this
option.)
-X [VMS, Unix, OS/2, NT] restore owner/protection info
(UICs) under VMS, or user and group info (UID/GID)
under Unix, or access control lists (ACLs) under
certain network-enabled versions of OS/2 (Warp
Server with IBM LAN Server/Requester 3.0 to 5.0;
Warp Connect with IBM Peer 1.0), or security ACLs
under Windows NT. In most cases this will require
special system privileges, and doubling the option
(-XX) under NT instructs unzip to use privileges
for extraction; but under Unix, for example, a user
who belongs to several groups can restore files
owned by any of those groups, as long as the user
IDs match his or her own. Note that ordinary file
attributes are always restored--this option applies
only to optional, extra ownership info available on
some operating systems. [NT's access control lists
do not appear to be especially compatible with
OS/2's, so no attempt is made at cross-platform
portability of access privileges. It is not clear
under what conditions this would ever be useful
anyway.]
-$ [MS-DOS, OS/2, NT] restore the volume label if the
extraction medium is removable (e.g., a diskette).
Doubling the option (-$$) allows fixed media (hard